HTTP API
Zur Verwendung der HTTP API benötigen Sie zunächst einen Systembenutzer, der über die Berechtigung zur Nutzung der API verfügt.
ê Wir empfehlen dafür nicht den Benutzer "admin" zu verwenden, sondern einen neuen Benutzer mit eingeschränkten Berechtigungen zu erstellen.
1Anlegen eines neuen Systembenutzers
- Melden Sie sich mit dem Benutzer admin am SMS Gateway an
- Navigieren Sie über Konfiguration in der Menüleiste zum Punkt Systembenutzer
- Erstellen Sie einen neuen Benutzer, z.B.: apiuser
- Verwalten Sie die Berechtigungen des Benutzers über das Stift Symbol am Ende der Zeile
Erteilen Sie die Berechtigung Zugriff auf die HTTP API
Weitere Berechtigungen werden nicht benötigt
2Verwendung der HTTP API
Die API kann über die folgenden Adresse angesprochen werden: https://<SMS Gateway IP>/api.php
An diese Schnittstelle können Sie via POST oder GET Daten übergeben.
Notwendig
Option | Beschreibung |
username | Systembenutzer, der die Berechtigung zum Zugriff auf die HTTP API besitzt |
password | Das zum Benutzer gehörige Passwort |
text | Inhalt der SMS |
to | Empfänger der SMS, abhängig von mode |
Optional
Option | Beschreibung | |||||||||||||||||||||
hexmode | Mit true kann der Text in Hexadezimalem Format an die API übergeben werden. Standard ist false. | |||||||||||||||||||||
list | Mit white wird eine Whitelist definiert, mit black wird eine Blacklist definiert. Benötigt den zusätzlichen Parameter regex. | |||||||||||||||||||||
mode |
Modus, entspricht der nachfolgenden Tabelle. Bei ungültigem Modus wird die Nachricht mittels number versendet.
|
|||||||||||||||||||||
regex | Hier kann eine Regular Expression übergeben werden. Falls diese auf die verwendet Absendernummer zutreffen sollte, wird mit list definiert ob die Absendernummer abgelehnt oder akzeptiert wird. Bitte beachten Sie eine möglicherweise notwendige URL-Enkodierung. | |||||||||||||||||||||
telauto | Mit false kann die Automatik-Option abgeschaltet werden. Wenn dies nicht deaktiviert ist, wird die Nachricht per SMS gesendet, wenn die Nummer des Empfängers nicht für das Telegramm verwendet wurde. |
3 Fehlerrückgabe
HTTP Status Code | Fehlerausgabe | Beschreibung |
400 | Error. See Gateway logs for more information. | Falscher Modus ausgewählt, Gruppe nicht vorhanden, Kontakt nicht vorhanden, Fehlerhafte Nummer |
400 | Error: Parameter miss | Fehlende Parameter |
401 | 401 Unauthorized - Username or Password wrong | Username und/oder Passwort falsch eingegeben |
403 | 403 Forbidden - Your User has no right to send SMS over API | Der User hat keine Berechtigung SMS über die API zu versenden |
408 | FAILED - Timeout or see Gateway logs for more information. | Der Server hat das Zeitlimit überschritten und auf Anforderungen gewartet |
i Die Fehlercodes werden zusätzlich als HTTP-Response-Code ausgegeben.
4 Beispiele mit GET
Beispiel SMS
curl
curl -X GET "https://<IP des SMS Gateways>/api.php?text=Test&to=00491701234567&username=apiuser&password=secret&mode=number"
powershell
Invoke-WebRequest -Uri "https://<IP SMS Gateway>/api.php?text=Test&to=00491701234567&username=apiuser&password=secret&mode=number" -Method GET
Beispiel Telegram
curl
curl -X GET "https://<IP des SMS Gateways>/api.php?text=Test&to=00491701234567&username=apiuser&password=secret&mode=telnumber&telauto=false"
powershell
Invoke-WebRequest -Uri "https://<IP SMS Gateway>/api.php?text=Test&to=00491701234567&username=apiuser&password=secret&mode=telnumber&telauto=false" -Method GET
Beispiel Hexmode
curl
curl -X GET "https://<IP des SMS Gateways>/api.php?text=48616c6c6f2064696573206973742065696e65205465737420534d53&to=00491701234567&username=apiuser&password=secret&hexmode=true"
powershell
Invoke-WebRequest -Uri "https://<IP SMS Gateway>/api.php?text=48616c6c6f2064696573206973742065696e65205465737420534d53&to=00491701234567&username=apiuser&password=secret&hexmode=true" -Method GET
5 Beispiele mit POST
Beispiel SMS
curl
curl -X POST -d "text=Test&to=00491701234567&username=apiuser&password=secret&mode=number" "https://<IP des SMS Gateways>/api.php"
powershell
Invoke-WebRequest -Uri https://<IP SMS Gateway>/api.php -Method POST -Body @{username='apiuser';password='secret';to='01701234567';text='Test';mode='number'}
Beispiel Telegram
curl
curl -X POST -d "text=Test&to=00491701234567&username=apiuser&password=secret&mode=telnumber&telauto=false" "https://<IP des SMS Gateways>/api.php"
powershell
Invoke-WebRequest -Uri https://<IP SMS Gateway>/api.php -Method POST -Body @{username='apiuser';password='secret';to='01701234567';text='Test';mode='telnumber';telauto='false'}
Beispiel Hexmode
curl
curl -X POST -d "text=48616c6c6f2064696573206973742065696e65205465737420534d53&to=00491701234567&username=apiuser&password=secret&hexmode=true" "https://<IP des SMS Gateways>/api.php"
powershell
Invoke-WebRequest -Uri https://<IP SMS Gateway>/api.php -Method POST -Body @{username='apiuser';password='secret';to='01701234567';text='48616c6c6f2064696573206973742065696e65205465737420534d53';hexmode='true'}
❕URL encoding
Einige Sonderzeichen und Leerzeichen können ohne URL-Encoding nicht über die HTTP API versendet werden. Verwenden Sie die Prozentdarstellung, um den Inhalt Ihrer Nachricht zu kodieren.
Verwandte Artikel
- Kann ich den Versand von Nachrichten automatisieren?
- E-Mail zu SMS
- Firmware Update
- Erste Schritte
- Gibt es weitere Module für das SMS Gateway?
- Hilfe
- Wie funktioniert E-Mail zu SMS?
- Wie kann ich die Firmware meines SMS Gateways aktualisieren?
- HTTP API
- Nachrichten Routing
- Kann mein SMS Gateway Nachrichten empfangen und weiterleiten?
- Wie bekomme ich eine Lizenz für mein SMS Gateway?
- Kann das SMS Gateway an Festnetznummern senden?
- Nachrichten über das Webinterface versenden